I. Field
The present invention relates generally to signal processing systems, and more particularly, to a system for detecting local maximums in a two-dimensional data set.
II. Description of the Related Art
Telecommunications is one area where signal processing has become especially important. For example, in a wireless telecommunications network based on code division multiple access (CDMA) technology, a large number of users communicate within the network using a variety of wireless devices that are sometimes referred to as terminals. These terminals include wireless telephones, pagers, email devices, personal digital assistants (PDA), and others.
The network uses data encryption and sophisticated base station receivers to allow communication services to be provided to selected terminals within a predetermined area, or cell. For example, transmissions from each terminal in a cell may be uniquely encoded and transmitted to a base station receiver. In order to receive the transmitted information, the receiver may be tuned for each transmitting terminal to filter out unwanted noise. To accomplish this, the receiver may process the received transmissions to produce a two-dimensional data array, sometimes referred to as a “search space.” One example of a search space provides the received transmissions in a two-dimensional data array where energy values in selected frequencies are associated with variations in a decoding sequence.
Typically, the search space includes local data maximums (peaks) that correspond to a frequency and a decoding sequence variation that are associated with a particular transmitting terminal. By detecting local peaks (i.e., frequency and sequence) in the two-dimensional data array, it is possible to use this information to tune the receiver to accurately receive data transmissions from selected transmitting terminals.
Current communication systems store the two-dimensional data array in a memory and repeatedly access the memory to compare data elements with their neighbor elements to detect local peaks. For example, if one wants to determine if a particular element of the two-dimensional array is a local maximum, then that element is compared to its four surrounding neighbor elements. This results in at least five memory accesses, which may be duplicated when detecting whether or not any of the neighbor elements represent local peaks in the data array. Thus, current systems are very inefficient because they require duplicate memory accesses to detect local peaks in the data array. This operation is especially problematic if the system is utilizing memory having a relatively slow bandwidth. For example, the amount of data is generally too large to store in a cache memory or register bank, and the bandwidth of external memory is typically much slower than internal memory.
Therefore, what is needed is a system that operates to efficiently detect local maximums in a two-dimensional data array without performing duplicate memory accesses as required by current systems.